package com.run2code.design.behavioral.visitor;
/**
 * 电子产品类，实现了Product接口
 * 关注公众号【奔跑的码畜】，一起进步不迷路
 *
 * @author 第七人格
 * @date 2024/06/25
 */
class ElectronicDevice implements Product {
    /**
     * 电子产品的型号
     */
    private String model;
    /**
     * 电子产品的品牌
     */
    private String brand;
    /**
     * 电子产品的价格
     */
    private double price;

    /**
     * 电子产品的构造函数，用于初始化电子产品的信息
     * @param model
     * @param brand
     * @param price
     */
    public ElectronicDevice(String model, String brand, double price) {  
        this.model = model;  
        this.brand = brand;  
        this.price = price;  
    }

    /**
     * 实现Product接口的accept方法，用于接受访问者
     * @param visitor
     */
    @Override  
    public void accept(ProductVisitor visitor) {
        // 调用访问者的visitElectronicDevice方法，传入当前电子产品对象
        visitor.visitElectronicDevice(this);
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }
}